package com.zlx.exchange.logs.service.impl;


import com.zlx.exchange.domain.entity.Logs;
import com.zlx.exchange.logs.dao.LogsDao;
import com.zlx.exchange.logs.service.LogsService;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;

import javax.annotation.Resource;

import org.springframework.http.ResponseEntity;
import com.github.pagehelper.PageHelper;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * (Logs)表服务实现类
 *
 * @author makejava
 * @since 2023-09-04 21:16:18
 */
@Transactional
@Service("logsService")
public class LogsServiceImpl implements LogsService {
    @Resource
    private LogsDao logsDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 返回体
     */
    @Override
    public ResponseEntity<?> queryById(Integer id) {
        this.logsDao.queryById(id);
        return ResponseEntity.ok("通过id查询，请加入返回体");
    }

    /**
     * 分页查询
     *
     * @param logs     筛选条件
     * @param pageNum  分页页数
     * @param pageSize 分页总页数
     * @return 查询结果
     */
    @Override
    public ResponseEntity<?> queryByPage(Logs logs, Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        return ResponseEntity.ok(new PageInfo<>(this.logsDao.queryAll(logs)));
    }

    /**
     * 新增数据
     *
     * @param logs 实例对象
     * @return 返回体
     */
    @Override
    public ResponseEntity<?> insert(Logs logs) {
        this.logsDao.insert(logs);
        return ResponseEntity.ok("插入一条数据，请加入返回体");
    }

    /**
     * 修改数据
     *
     * @param logs 实例对象
     * @return 返回体
     */
    @Override
    public ResponseEntity<?> update(Logs logs) {
        this.logsDao.update(logs);
        this.queryById(logs.getId());
        return ResponseEntity.ok("修改一条数据，请添加返回体");
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 返回体，判断是否成功
     */
    @Override
    public ResponseEntity<?> deleteById(Integer id) {
        boolean b = this.logsDao.deleteById(id) > 0;
        return ResponseEntity.ok("通过id删除一条数据，请加入返回体");
    }
    /**
     *批量添加或者批量修改
     * @param list List<Logs> 实例对象列表
     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常，请自行校验入参
     */
    public ResponseEntity<?> insertOrUpdateBatch(List<Logs> list) {
        Integer passTime = this.logsDao.insertOrUpdateBatch(list);
        return ResponseEntity.ok("批量添加或批量修改成功，请加入返回体");
    }
    /**
     *批量删除
     * @param list List<Logs> 实例对象列表
     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常，请自行校验入参
     */
    public ResponseEntity<?> deleteBatch(List<Logs> list) {
        this.logsDao.deleteBatchIds(list);
        return ResponseEntity.ok("批量删除成功，请加入返回体");
    }
}
